home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
tan_snd.arc
/
DRUMS.SIM
< prev
next >
Wrap
Text File
|
1991-07-27
|
3KB
|
74 lines
unit drums; { DRUMS.PAS Copyright (c) 1990 DSoft Specialties }
interfac { Drum routines for the Tandy 1000 and/or PCJr. See DRUMS.SIM }
uses dos,noiz;
{ All I ask is if you use any of these routines in your program
please mention DSoft in the docs or in a copyright message }
type
echo_style = (short,long); { long or short echo }
const
drumpitch: word = 0; { initial pitch for drum sounds }
inturbo: boolean = true; { true = shorter delay in wait(dt) }
procedure wait(time: longint); { like CRT units delay routine }
procedure delay(dt: longint); { like CRT units delay routine }
procedure drum_pitch(i: word); { set initial pitch }
procedure down(snd,step: byte;pitch: word);
procedure up(snd,step: byte;pitch: word);
procedure noise(ch: char;sr,amp,duration: word);
procedure dwn(reps,tone,dur: integer);
procedure snare(reps,dur: byte); { snare drum }
procedure tom(reps,dur: byte); { Tom drum }
procedure lowtom(reps,dur: byte); { Floor Tom }
procedure bass(reps,dur: byte); { Bass drums }
procedure bass2(reps,dur: byte); { tricky double bass }
procedure roto1(reps,dur: byte); { roto-Tom #1 }
procedure roto2(reps,dur: byte); { roto-Tom #2 }
procedure roto5(reps,tone,dur: integer); { Oddball/experimental roto-tom }
procedure sims(reps,dur: byte); { "Simmons" electronic drum - low }
procedure sims1(reps,dur: byte); { "Simmons" electronic drum - medium }
procedure sims2(reps,dur: byte); { "Simmons" electronic drum - high }
procedure sims3(reps,dur: byte); { "Simmons" electronic drum - higher }
procedure crash(reps,dur: integer);
procedure roll(reps,dur,crashdur: integer);
{ does a cool roll
reps = how many times to do it
dur = play it slowly or quickly
crashdur = how long for the crash cymbal }
procedure lick(reps: byte);
{ a nifty little drum "lick"
reps = how many times to do this "lick" }
procedure echo(del: word;es: echo_style);
{ does a cool echo sound
del = delay time, time between repeats
es = either, long, or short }
procedure quiet;
{ turns all 3 voices and normal PC sound off. Also, turns noise off }
function fkey: char;
{ like CRT's ReadKey, but if its a function key add 128 to the value of fkey
NOTE: #187 = F1
#196 = F10
Syntax:
ch:=upcase(fkey);
case ch of
'1':;
#187: writeln('F1 hit');
#196: halt;
end; }
function keyhit: boolean;
{ like CRT's KeyPressed }
implementation